{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "\n",
    "import seaborn as sns\n",
    "import matplotlib.pyplot as plt\n",
    "import sys\n",
    "import warnings\n",
    "warnings.filterwarnings(\"ignore\")\n",
    "plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签\n",
    "plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "data_325 = pd.read_excel(\"1-重新整合325个样本数据.xlsx\", na_values=np.nan, skiprows=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(325, 370)"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_325.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>样本编号</th>\n",
       "      <th>时间</th>\n",
       "      <th>RON损失</th>\n",
       "      <th>原料性质：硫含量</th>\n",
       "      <th>原料性质：辛烷值</th>\n",
       "      <th>原料性质：饱和烃</th>\n",
       "      <th>原料性质：烯烃</th>\n",
       "      <th>原料性质：芳烃</th>\n",
       "      <th>原料性质：溴值</th>\n",
       "      <th>原料性质：密度</th>\n",
       "      <th>...</th>\n",
       "      <th>S-ZORB.CAL_1.CANGLIANG.PV</th>\n",
       "      <th>S-ZORB.FT_1006.DACA.PV</th>\n",
       "      <th>S-ZORB.FT_5204.DACA.PV</th>\n",
       "      <th>S-ZORB.FT_1006.TOTALIZERA.PV</th>\n",
       "      <th>S-ZORB.FT_5204.TOTALIZERA.PV</th>\n",
       "      <th>S-ZORB.FT_1503.DACA.PV</th>\n",
       "      <th>S-ZORB.FT_1503.TOTALIZERA.PV</th>\n",
       "      <th>S-ZORB.FT_1504.DACA.PV</th>\n",
       "      <th>S-ZORB.FT_1504.TOTALIZERA.PV</th>\n",
       "      <th>S-ZORB.PC_1001A.PV</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>2020/5/26 8:00:00</td>\n",
       "      <td>1.38</td>\n",
       "      <td>188.0</td>\n",
       "      <td>90.6</td>\n",
       "      <td>53.230000</td>\n",
       "      <td>24.400000</td>\n",
       "      <td>22.370000</td>\n",
       "      <td>61.487143</td>\n",
       "      <td>726.085714</td>\n",
       "      <td>...</td>\n",
       "      <td>2.045436</td>\n",
       "      <td>6368.74700</td>\n",
       "      <td>233.310805</td>\n",
       "      <td>83086802.0</td>\n",
       "      <td>832503.795</td>\n",
       "      <td>2216.40935</td>\n",
       "      <td>39063124.5</td>\n",
       "      <td>1840.14470</td>\n",
       "      <td>39608757.0</td>\n",
       "      <td>0.353271</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>2020/5/21 8:00:00</td>\n",
       "      <td>1.18</td>\n",
       "      <td>169.0</td>\n",
       "      <td>90.5</td>\n",
       "      <td>52.300000</td>\n",
       "      <td>26.400000</td>\n",
       "      <td>21.300000</td>\n",
       "      <td>61.880000</td>\n",
       "      <td>731.300000</td>\n",
       "      <td>...</td>\n",
       "      <td>2.025974</td>\n",
       "      <td>6360.64530</td>\n",
       "      <td>242.369205</td>\n",
       "      <td>82318954.0</td>\n",
       "      <td>803462.665</td>\n",
       "      <td>2370.58740</td>\n",
       "      <td>38810581.5</td>\n",
       "      <td>1641.73260</td>\n",
       "      <td>39389299.0</td>\n",
       "      <td>0.354504</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>2020/5/19 8:00:00</td>\n",
       "      <td>1.38</td>\n",
       "      <td>177.0</td>\n",
       "      <td>90.7</td>\n",
       "      <td>52.300000</td>\n",
       "      <td>26.314286</td>\n",
       "      <td>21.385714</td>\n",
       "      <td>61.722857</td>\n",
       "      <td>729.614286</td>\n",
       "      <td>...</td>\n",
       "      <td>1.964696</td>\n",
       "      <td>6504.96490</td>\n",
       "      <td>233.076925</td>\n",
       "      <td>82012004.0</td>\n",
       "      <td>791925.055</td>\n",
       "      <td>2326.46535</td>\n",
       "      <td>38693812.0</td>\n",
       "      <td>1600.67575</td>\n",
       "      <td>39312616.5</td>\n",
       "      <td>0.350181</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>2020/5/14 8:00:00</td>\n",
       "      <td>1.38</td>\n",
       "      <td>159.0</td>\n",
       "      <td>90.4</td>\n",
       "      <td>52.300000</td>\n",
       "      <td>26.100000</td>\n",
       "      <td>21.600000</td>\n",
       "      <td>61.330000</td>\n",
       "      <td>725.400000</td>\n",
       "      <td>...</td>\n",
       "      <td>2.039041</td>\n",
       "      <td>6506.82495</td>\n",
       "      <td>238.349935</td>\n",
       "      <td>81231373.5</td>\n",
       "      <td>762863.810</td>\n",
       "      <td>2495.22360</td>\n",
       "      <td>38410862.5</td>\n",
       "      <td>1563.71215</td>\n",
       "      <td>39120204.5</td>\n",
       "      <td>0.353930</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>2020/5/12 8:00:00</td>\n",
       "      <td>1.28</td>\n",
       "      <td>173.0</td>\n",
       "      <td>89.6</td>\n",
       "      <td>52.242857</td>\n",
       "      <td>26.671429</td>\n",
       "      <td>21.085714</td>\n",
       "      <td>61.332857</td>\n",
       "      <td>725.428571</td>\n",
       "      <td>...</td>\n",
       "      <td>1.986900</td>\n",
       "      <td>6560.24225</td>\n",
       "      <td>236.576220</td>\n",
       "      <td>80915707.5</td>\n",
       "      <td>751362.300</td>\n",
       "      <td>2807.78910</td>\n",
       "      <td>38283000.0</td>\n",
       "      <td>1554.35740</td>\n",
       "      <td>39045953.5</td>\n",
       "      <td>0.358053</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 370 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   样本编号                 时间  RON损失  原料性质：硫含量  原料性质：辛烷值   原料性质：饱和烃    原料性质：烯烃  \\\n",
       "0     1  2020/5/26 8:00:00   1.38     188.0      90.6  53.230000  24.400000   \n",
       "1     2  2020/5/21 8:00:00   1.18     169.0      90.5  52.300000  26.400000   \n",
       "2     3  2020/5/19 8:00:00   1.38     177.0      90.7  52.300000  26.314286   \n",
       "3     4  2020/5/14 8:00:00   1.38     159.0      90.4  52.300000  26.100000   \n",
       "4     5  2020/5/12 8:00:00   1.28     173.0      89.6  52.242857  26.671429   \n",
       "\n",
       "     原料性质：芳烃    原料性质：溴值     原料性质：密度  ...  S-ZORB.CAL_1.CANGLIANG.PV  \\\n",
       "0  22.370000  61.487143  726.085714  ...                   2.045436   \n",
       "1  21.300000  61.880000  731.300000  ...                   2.025974   \n",
       "2  21.385714  61.722857  729.614286  ...                   1.964696   \n",
       "3  21.600000  61.330000  725.400000  ...                   2.039041   \n",
       "4  21.085714  61.332857  725.428571  ...                   1.986900   \n",
       "\n",
       "   S-ZORB.FT_1006.DACA.PV  S-ZORB.FT_5204.DACA.PV  \\\n",
       "0              6368.74700              233.310805   \n",
       "1              6360.64530              242.369205   \n",
       "2              6504.96490              233.076925   \n",
       "3              6506.82495              238.349935   \n",
       "4              6560.24225              236.576220   \n",
       "\n",
       "   S-ZORB.FT_1006.TOTALIZERA.PV  S-ZORB.FT_5204.TOTALIZERA.PV  \\\n",
       "0                    83086802.0                    832503.795   \n",
       "1                    82318954.0                    803462.665   \n",
       "2                    82012004.0                    791925.055   \n",
       "3                    81231373.5                    762863.810   \n",
       "4                    80915707.5                    751362.300   \n",
       "\n",
       "   S-ZORB.FT_1503.DACA.PV  S-ZORB.FT_1503.TOTALIZERA.PV  \\\n",
       "0              2216.40935                    39063124.5   \n",
       "1              2370.58740                    38810581.5   \n",
       "2              2326.46535                    38693812.0   \n",
       "3              2495.22360                    38410862.5   \n",
       "4              2807.78910                    38283000.0   \n",
       "\n",
       "   S-ZORB.FT_1504.DACA.PV  S-ZORB.FT_1504.TOTALIZERA.PV  S-ZORB.PC_1001A.PV  \n",
       "0              1840.14470                    39608757.0            0.353271  \n",
       "1              1641.73260                    39389299.0            0.354504  \n",
       "2              1600.67575                    39312616.5            0.350181  \n",
       "3              1563.71215                    39120204.5            0.353930  \n",
       "4              1554.35740                    39045953.5            0.358053  \n",
       "\n",
       "[5 rows x 370 columns]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_325.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['样本编号', '时间', 'RON损失', '原料性质：硫含量', '原料性质：辛烷值', '原料性质：饱和烃', '原料性质：烯烃',\n",
       "       '原料性质：芳烃', '原料性质：溴值', '原料性质：密度',\n",
       "       ...\n",
       "       'S-ZORB.CAL_1.CANGLIANG.PV', 'S-ZORB.FT_1006.DACA.PV',\n",
       "       'S-ZORB.FT_5204.DACA.PV', 'S-ZORB.FT_1006.TOTALIZERA.PV',\n",
       "       'S-ZORB.FT_5204.TOTALIZERA.PV', 'S-ZORB.FT_1503.DACA.PV',\n",
       "       'S-ZORB.FT_1503.TOTALIZERA.PV', 'S-ZORB.FT_1504.DACA.PV',\n",
       "       'S-ZORB.FT_1504.TOTALIZERA.PV', 'S-ZORB.PC_1001A.PV'],\n",
       "      dtype='object', length=370)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_325.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "# for i in range(2, len(data_325.columns)):\n",
    "#     #画散点图和直方图\n",
    "#     fig = plt.figure(figsize = (10,6))\n",
    "#     ax1 = fig.add_subplot(2,1,1)  # 创建子图1\n",
    "#     ax1.scatter(data_325[data_325.columns[i]].index, data_325[data_325.columns[i]].values)\n",
    "#     plt.grid()\n",
    "\n",
    "#     ax2 = fig.add_subplot(2,1,2)  # 创建子图2\n",
    "#     data_325[data_325.columns[i]].hist(bins=30,alpha = 0.5,ax = ax2)\n",
    "#     data_325[data_325.columns[i]].plot(kind = 'kde', secondary_y=True,ax = ax2)\n",
    "#     plt.grid()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "# #画散点图和直方图\n",
    "# fig = plt.figure(figsize = (10,6))\n",
    "# ax1 = fig.add_subplot(2,1,1)  # 创建子图1\n",
    "# ax1.scatter(data_325[\"S-ZORB.FC_2301.PV\"].index, data_325[\"S-ZORB.FC_2301.PV\"].values)\n",
    "# plt.grid()\n",
    "\n",
    "# ax2 = fig.add_subplot(2,1,2)  # 创建子图2\n",
    "# data_325[\"S-ZORB.FC_2301.PV\"].hist(bins=30,alpha = 0.5,ax = ax2)\n",
    "# data_325[\"S-ZORB.FC_2301.PV\"].plot(kind = 'kde', secondary_y=True,ax = ax2)\n",
    "# plt.grid()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "# # ser1表示传入DataFrame的某一列\n",
    "# def three_sigma(ser1):\n",
    "#     # 求平均值\n",
    "#     mean_value = ser1.mean()\n",
    "#     # 求标准差\n",
    "#     std_value = ser1.std()\n",
    "#     # 位于(μ-3σ,μ+3σ)区间内的数据是正常的，不在该区间的数据是异常的\n",
    "#     # ser1中的数值小于μ-3σ或大于μ+3σ均为异常值\n",
    "#     # 一旦发现异常值就标注为True，否则标注为False\n",
    "#     rule = (mean_value - 3 * std_value > ser1) | (mean_value + 3 * std_value < ser1)\n",
    "#     #print(rule)\n",
    "#     if rule is True:\n",
    "#         # 返回异常值的位置索引\n",
    "#         index = np.arange(ser1.shape[0])[rule]\n",
    "#         error_value_list.append(index)\n",
    "#     return error_value_list"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>样本编号</th>\n",
       "      <th>RON损失</th>\n",
       "      <th>原料性质：硫含量</th>\n",
       "      <th>原料性质：辛烷值</th>\n",
       "      <th>原料性质：饱和烃</th>\n",
       "      <th>原料性质：烯烃</th>\n",
       "      <th>原料性质：芳烃</th>\n",
       "      <th>原料性质：溴值</th>\n",
       "      <th>原料性质：密度</th>\n",
       "      <th>产品性质：硫含量</th>\n",
       "      <th>...</th>\n",
       "      <th>S-ZORB.CAL_1.CANGLIANG.PV</th>\n",
       "      <th>S-ZORB.FT_1006.DACA.PV</th>\n",
       "      <th>S-ZORB.FT_5204.DACA.PV</th>\n",
       "      <th>S-ZORB.FT_1006.TOTALIZERA.PV</th>\n",
       "      <th>S-ZORB.FT_5204.TOTALIZERA.PV</th>\n",
       "      <th>S-ZORB.FT_1503.DACA.PV</th>\n",
       "      <th>S-ZORB.FT_1503.TOTALIZERA.PV</th>\n",
       "      <th>S-ZORB.FT_1504.DACA.PV</th>\n",
       "      <th>S-ZORB.FT_1504.TOTALIZERA.PV</th>\n",
       "      <th>S-ZORB.PC_1001A.PV</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>325.000000</td>\n",
       "      <td>325.000000</td>\n",
       "      <td>325.000000</td>\n",
       "      <td>325.000000</td>\n",
       "      <td>325.000000</td>\n",
       "      <td>325.000000</td>\n",
       "      <td>325.000000</td>\n",
       "      <td>325.000000</td>\n",
       "      <td>325.000000</td>\n",
       "      <td>325.000000</td>\n",
       "      <td>...</td>\n",
       "      <td>325.000000</td>\n",
       "      <td>325.000000</td>\n",
       "      <td>325.000000</td>\n",
       "      <td>3.250000e+02</td>\n",
       "      <td>3.250000e+02</td>\n",
       "      <td>3.250000e+02</td>\n",
       "      <td>3.250000e+02</td>\n",
       "      <td>325.000000</td>\n",
       "      <td>3.250000e+02</td>\n",
       "      <td>325.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>163.000000</td>\n",
       "      <td>1.255477</td>\n",
       "      <td>229.548904</td>\n",
       "      <td>89.701538</td>\n",
       "      <td>52.676228</td>\n",
       "      <td>25.389298</td>\n",
       "      <td>21.931659</td>\n",
       "      <td>53.988808</td>\n",
       "      <td>726.755265</td>\n",
       "      <td>4.058154</td>\n",
       "      <td>...</td>\n",
       "      <td>2.256077</td>\n",
       "      <td>4843.993930</td>\n",
       "      <td>180.358341</td>\n",
       "      <td>6.719406e+07</td>\n",
       "      <td>1.113469e+06</td>\n",
       "      <td>9.008195e+04</td>\n",
       "      <td>1.521126e+07</td>\n",
       "      <td>2105.079943</td>\n",
       "      <td>1.760142e+07</td>\n",
       "      <td>-33.277532</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>93.963645</td>\n",
       "      <td>0.225929</td>\n",
       "      <td>65.752227</td>\n",
       "      <td>0.950064</td>\n",
       "      <td>4.584314</td>\n",
       "      <td>4.954857</td>\n",
       "      <td>1.853239</td>\n",
       "      <td>8.164930</td>\n",
       "      <td>4.262181</td>\n",
       "      <td>1.551175</td>\n",
       "      <td>...</td>\n",
       "      <td>0.275891</td>\n",
       "      <td>2359.134691</td>\n",
       "      <td>253.214716</td>\n",
       "      <td>3.861360e+07</td>\n",
       "      <td>1.169934e+06</td>\n",
       "      <td>5.754798e+05</td>\n",
       "      <td>1.060279e+07</td>\n",
       "      <td>1798.246718</td>\n",
       "      <td>1.172462e+07</td>\n",
       "      <td>42.008897</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.200000</td>\n",
       "      <td>57.000000</td>\n",
       "      <td>85.300000</td>\n",
       "      <td>43.240000</td>\n",
       "      <td>14.600000</td>\n",
       "      <td>16.000000</td>\n",
       "      <td>6.390000</td>\n",
       "      <td>715.100000</td>\n",
       "      <td>3.200000</td>\n",
       "      <td>...</td>\n",
       "      <td>1.271312</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>3.050138e+04</td>\n",
       "      <td>6.156109e+01</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>-13900.460500</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>-120.560472</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>82.000000</td>\n",
       "      <td>1.120000</td>\n",
       "      <td>185.000000</td>\n",
       "      <td>89.200000</td>\n",
       "      <td>49.610000</td>\n",
       "      <td>21.800000</td>\n",
       "      <td>20.690000</td>\n",
       "      <td>48.650000</td>\n",
       "      <td>724.200000</td>\n",
       "      <td>3.200000</td>\n",
       "      <td>...</td>\n",
       "      <td>2.080581</td>\n",
       "      <td>4215.424100</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>3.272797e+07</td>\n",
       "      <td>3.518756e+04</td>\n",
       "      <td>1.870588e+03</td>\n",
       "      <td>6.520788e+06</td>\n",
       "      <td>2211.859850</td>\n",
       "      <td>7.974892e+06</td>\n",
       "      <td>-72.834572</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>163.000000</td>\n",
       "      <td>1.240000</td>\n",
       "      <td>240.285714</td>\n",
       "      <td>89.800000</td>\n",
       "      <td>53.250000</td>\n",
       "      <td>24.800000</td>\n",
       "      <td>21.890000</td>\n",
       "      <td>53.980000</td>\n",
       "      <td>726.300000</td>\n",
       "      <td>3.200000</td>\n",
       "      <td>...</td>\n",
       "      <td>2.247015</td>\n",
       "      <td>5094.966775</td>\n",
       "      <td>142.936557</td>\n",
       "      <td>7.252226e+07</td>\n",
       "      <td>3.631831e+05</td>\n",
       "      <td>2.177558e+03</td>\n",
       "      <td>1.381849e+07</td>\n",
       "      <td>2538.538450</td>\n",
       "      <td>1.643785e+07</td>\n",
       "      <td>0.293821</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>244.000000</td>\n",
       "      <td>1.380000</td>\n",
       "      <td>271.428571</td>\n",
       "      <td>90.300000</td>\n",
       "      <td>56.100000</td>\n",
       "      <td>29.000000</td>\n",
       "      <td>23.300000</td>\n",
       "      <td>60.190000</td>\n",
       "      <td>729.500000</td>\n",
       "      <td>4.400000</td>\n",
       "      <td>...</td>\n",
       "      <td>2.338828</td>\n",
       "      <td>6129.741900</td>\n",
       "      <td>217.985505</td>\n",
       "      <td>1.017919e+08</td>\n",
       "      <td>2.545050e+06</td>\n",
       "      <td>2.569868e+03</td>\n",
       "      <td>2.254427e+07</td>\n",
       "      <td>2702.628700</td>\n",
       "      <td>2.678945e+07</td>\n",
       "      <td>0.350086</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>325.000000</td>\n",
       "      <td>1.820000</td>\n",
       "      <td>392.000000</td>\n",
       "      <td>91.700000</td>\n",
       "      <td>63.400000</td>\n",
       "      <td>34.670000</td>\n",
       "      <td>26.200000</td>\n",
       "      <td>70.500000</td>\n",
       "      <td>738.700000</td>\n",
       "      <td>11.800000</td>\n",
       "      <td>...</td>\n",
       "      <td>3.558827</td>\n",
       "      <td>11320.456750</td>\n",
       "      <td>2120.872650</td>\n",
       "      <td>1.236097e+08</td>\n",
       "      <td>2.562289e+06</td>\n",
       "      <td>5.419704e+06</td>\n",
       "      <td>3.906312e+07</td>\n",
       "      <td>3104.564825</td>\n",
       "      <td>3.960876e+07</td>\n",
       "      <td>0.358053</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>8 rows × 369 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "             样本编号       RON损失    原料性质：硫含量    原料性质：辛烷值    原料性质：饱和烃     原料性质：烯烃  \\\n",
       "count  325.000000  325.000000  325.000000  325.000000  325.000000  325.000000   \n",
       "mean   163.000000    1.255477  229.548904   89.701538   52.676228   25.389298   \n",
       "std     93.963645    0.225929   65.752227    0.950064    4.584314    4.954857   \n",
       "min      1.000000    0.200000   57.000000   85.300000   43.240000   14.600000   \n",
       "25%     82.000000    1.120000  185.000000   89.200000   49.610000   21.800000   \n",
       "50%    163.000000    1.240000  240.285714   89.800000   53.250000   24.800000   \n",
       "75%    244.000000    1.380000  271.428571   90.300000   56.100000   29.000000   \n",
       "max    325.000000    1.820000  392.000000   91.700000   63.400000   34.670000   \n",
       "\n",
       "          原料性质：芳烃     原料性质：溴值     原料性质：密度    产品性质：硫含量  ...  \\\n",
       "count  325.000000  325.000000  325.000000  325.000000  ...   \n",
       "mean    21.931659   53.988808  726.755265    4.058154  ...   \n",
       "std      1.853239    8.164930    4.262181    1.551175  ...   \n",
       "min     16.000000    6.390000  715.100000    3.200000  ...   \n",
       "25%     20.690000   48.650000  724.200000    3.200000  ...   \n",
       "50%     21.890000   53.980000  726.300000    3.200000  ...   \n",
       "75%     23.300000   60.190000  729.500000    4.400000  ...   \n",
       "max     26.200000   70.500000  738.700000   11.800000  ...   \n",
       "\n",
       "       S-ZORB.CAL_1.CANGLIANG.PV  S-ZORB.FT_1006.DACA.PV  \\\n",
       "count                 325.000000              325.000000   \n",
       "mean                    2.256077             4843.993930   \n",
       "std                     0.275891             2359.134691   \n",
       "min                     1.271312                0.000000   \n",
       "25%                     2.080581             4215.424100   \n",
       "50%                     2.247015             5094.966775   \n",
       "75%                     2.338828             6129.741900   \n",
       "max                     3.558827            11320.456750   \n",
       "\n",
       "       S-ZORB.FT_5204.DACA.PV  S-ZORB.FT_1006.TOTALIZERA.PV  \\\n",
       "count              325.000000                  3.250000e+02   \n",
       "mean               180.358341                  6.719406e+07   \n",
       "std                253.214716                  3.861360e+07   \n",
       "min                  0.000000                  0.000000e+00   \n",
       "25%                  0.000000                  3.272797e+07   \n",
       "50%                142.936557                  7.252226e+07   \n",
       "75%                217.985505                  1.017919e+08   \n",
       "max               2120.872650                  1.236097e+08   \n",
       "\n",
       "       S-ZORB.FT_5204.TOTALIZERA.PV  S-ZORB.FT_1503.DACA.PV  \\\n",
       "count                  3.250000e+02            3.250000e+02   \n",
       "mean                   1.113469e+06            9.008195e+04   \n",
       "std                    1.169934e+06            5.754798e+05   \n",
       "min                    3.050138e+04            6.156109e+01   \n",
       "25%                    3.518756e+04            1.870588e+03   \n",
       "50%                    3.631831e+05            2.177558e+03   \n",
       "75%                    2.545050e+06            2.569868e+03   \n",
       "max                    2.562289e+06            5.419704e+06   \n",
       "\n",
       "       S-ZORB.FT_1503.TOTALIZERA.PV  S-ZORB.FT_1504.DACA.PV  \\\n",
       "count                  3.250000e+02              325.000000   \n",
       "mean                   1.521126e+07             2105.079943   \n",
       "std                    1.060279e+07             1798.246718   \n",
       "min                    0.000000e+00           -13900.460500   \n",
       "25%                    6.520788e+06             2211.859850   \n",
       "50%                    1.381849e+07             2538.538450   \n",
       "75%                    2.254427e+07             2702.628700   \n",
       "max                    3.906312e+07             3104.564825   \n",
       "\n",
       "       S-ZORB.FT_1504.TOTALIZERA.PV  S-ZORB.PC_1001A.PV  \n",
       "count                  3.250000e+02          325.000000  \n",
       "mean                   1.760142e+07          -33.277532  \n",
       "std                    1.172462e+07           42.008897  \n",
       "min                    0.000000e+00         -120.560472  \n",
       "25%                    7.974892e+06          -72.834572  \n",
       "50%                    1.643785e+07            0.293821  \n",
       "75%                    2.678945e+07            0.350086  \n",
       "max                    3.960876e+07            0.358053  \n",
       "\n",
       "[8 rows x 369 columns]"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_325.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "remove_zero_list = []\n",
    "modify_zero_list = []\n",
    "for i in range(2, len(data_325.columns)):\n",
    "    zero_count = data_325[ data_325[data_325.columns[i]] == 0.0 ].shape[0]\n",
    "    if zero_count >= data_325.shape[0]*0.03:\n",
    "        #print(i, zero_count)\n",
    "        remove_zero_list.append([data_325.columns[i], zero_count])\n",
    "    elif 0 < zero_count < data_325.shape[0]*0.03:\n",
    "        modify_zero_list.append(data_325.columns[i])\n",
    "remove_zero_list.sort(key=lambda x:x[1])\n",
    "modify_zero_list.sort()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "S-ZORB.FT_2303.DACA\t10\n",
      "S-ZORB.FT_1006.TOTALIZERA.PV\t14\n",
      "S-ZORB.FT_1004.PV\t19\n",
      "S-ZORB.FT_2002.DACA\t22\n",
      "S-ZORB.FT_1006.DACA.PV\t34\n",
      "S-ZORB.FT_3702.DACA\t54\n",
      "S-ZORB.FT_5204.DACA.PV\t84\n",
      "S-ZORB.FT_5102.PV\t109\n",
      "S-ZORB.FT_1501.TOTAL\t123\n",
      "S-ZORB.FT_5104.PV\t126\n",
      "S-ZORB.FT_9101.PV\t134\n",
      "S-ZORB.FT_5102.DACA.PV\t134\n",
      "S-ZORB.FT_1002.PV\t137\n",
      "S-ZORB.FT_2901.DACA\t137\n",
      "S-ZORB.FC_2301.PV\t145\n",
      "S-ZORB.FT_1002.TOTAL\t187\n",
      "S-ZORB.FC_3103.PV\t214\n",
      "S-ZORB.TEX_3103A.DACA\t214\n",
      "S-ZORB.FC_1202.PV\t219\n",
      "S-ZORB.FT_1501.PV\t288\n",
      "S-ZORB.FT_2803.DACA\t297\n",
      "S-ZORB.FC_1104.DACA\t307\n",
      "S-ZORB.FT_1502.DACA\t308\n"
     ]
    }
   ],
   "source": [
    "for r in remove_zero_list:\n",
    "    print(r[0]+'\\t'+str(r[1]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "remove_df = pd.DataFrame(remove_zero_list)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [],
   "source": [
    "remove_df.to_excel(\"特征向量中为0的个数.xlsx\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "remove_df.columns = ['特征名称', '特征向量中为0的个数']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,\n",
       "        17, 18, 19, 20, 21, 22]), <a list of 23 Text xticklabel objects>)"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig,axes=plt.subplots(1,1,figsize=(15,8))\n",
    "plt.title(\"需要剔除的特征变量0值分布\")\n",
    "axx = sns.barplot(x='特征名称',y='特征向量中为0的个数',color=\"salmon\",data=remove_df)\n",
    "plt.xticks(rotation=90)\n",
    "# sns.barplot(x='菜系',y='评分',color=\"salmon\",data=df,estimator=min,ax=axes[1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "# remove_zero_list = []\n",
    "# modify_zero_list = []\n",
    "# unremove_zero_list = []\n",
    "# name_list = []\n",
    "# for i in range(2, len(data_325.columns)):\n",
    "#     zero_count = data_325[ data_325[data_325.columns[i]] == 0.0 ].shape[0]\n",
    "#     if zero_count >= data_325.shape[0]*0.03:\n",
    "#         #print(i, zero_count)data_325.columns[i], \n",
    "#         remove_zero_list.append({\"value\":zero_count,\"percent\":zero_count / data_325[data_325.columns[i]].shape[0]})\n",
    "#         unremove_zero_list.append({\"value\":data_325[data_325.columns[i]].shape[0] - zero_count,\"percent\":(data_325[data_325.columns[i]].shape[0]-zero_count) / data_325[data_325.columns[i]].shape[0]})\n",
    "#         name_list.append(data_325.columns[i])\n",
    "#     elif 0 < zero_count < data_325.shape[0]*0.03:\n",
    "#         modify_zero_list.append(data_325.columns[i])\n",
    "    \n",
    "# # remove_zero_list.sort(key=lambda x:x[1])\n",
    "# # modify_zero_list.sort()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "# from pyecharts import options as opts\n",
    "# from pyecharts.charts import Bar\n",
    "# from pyecharts.commons.utils import JsCode\n",
    "# from pyecharts.globals import ThemeType\n",
    "\n",
    "# # list2 = [\n",
    "# #     {\"value\": \"12\", \"percent\": 10},\n",
    "# #     {\"value\": \"23\", \"percent\": 20},\n",
    "# #     {\"value\": \"33\", \"percent\": 30},\n",
    "# #     {\"value\": \"3\", \"percent\": 40},\n",
    "# #     {\"value\": \"33\", \"percent\": 50},\n",
    "# # ]\n",
    "\n",
    "# # list3 = [\n",
    "# #     {\"value\": \"3\", \"percent\": 1},\n",
    "# #     {\"value\": \"21\", \"percent\": 20},\n",
    "# #     {\"value\": \"5\", \"percent\": 33},\n",
    "# #     {\"value\": \"52\", \"percent\": 80},\n",
    "# #     {\"value\": \"43\", \"percent\": 5},\n",
    "# # ]\n",
    "\n",
    "# c = (\n",
    "#     Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK))\n",
    "#     .add_xaxis(name_list)\n",
    "#     .add_yaxis(\"特征变量中0的个数\", remove_zero_list, stack=\"stack1\", category_gap=\"50%\")\n",
    "#     .add_yaxis(\"特征变量中非0的个数\", unremove_zero_list, stack=\"stack1\", category_gap=\"50%\")\n",
    "#     .set_series_opts(\n",
    "#         xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),\n",
    "#         label_opts=opts.LabelOpts(\n",
    "#             position=\"right\",\n",
    "#             formatter=JsCode(\n",
    "#                 \"function(x){return Number(x.data.percent * 100).toFixed() + '%';}\"\n",
    "#             ),\n",
    "#         )\n",
    "#     )\n",
    "#     .render_notebook()\n",
    "# )\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts':'https://assets.pyecharts.org/assets/echarts.min'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "\n",
       "        <div id=\"868c3863ca5b4651b17fa010c8512fb4\" style=\"width:900px; height:500px;\"></div>\n",
       "\n",
       "<script>\n",
       "        require(['echarts'], function(echarts) {\n",
       "                var chart_868c3863ca5b4651b17fa010c8512fb4 = echarts.init(\n",
       "                    document.getElementById('868c3863ca5b4651b17fa010c8512fb4'), 'dark', {renderer: 'canvas'});\n",
       "                var option_868c3863ca5b4651b17fa010c8512fb4 = {\n",
       "    \"animation\": true,\n",
       "    \"animationThreshold\": 2000,\n",
       "    \"animationDuration\": 1000,\n",
       "    \"animationEasing\": \"cubicOut\",\n",
       "    \"animationDelay\": 0,\n",
       "    \"animationDurationUpdate\": 300,\n",
       "    \"animationEasingUpdate\": \"cubicOut\",\n",
       "    \"animationDelayUpdate\": 0,\n",
       "    \"series\": [\n",
       "        {\n",
       "            \"type\": \"bar\",\n",
       "            \"name\": \"\\u7279\\u5f81\\u53d8\\u91cf\\u4e2d0\\u7684\\u4e2a\\u6570\",\n",
       "            \"data\": [\n",
       "                {\n",
       "                    \"value\": 145,\n",
       "                    \"percent\": 0.4461538461538462\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 288,\n",
       "                    \"percent\": 0.8861538461538462\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 126,\n",
       "                    \"percent\": 0.38769230769230767\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 134,\n",
       "                    \"percent\": 0.4123076923076923\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 137,\n",
       "                    \"percent\": 0.42153846153846153\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 19,\n",
       "                    \"percent\": 0.05846153846153846\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 219,\n",
       "                    \"percent\": 0.6738461538461539\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 214,\n",
       "                    \"percent\": 0.6584615384615384\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 187,\n",
       "                    \"percent\": 0.5753846153846154\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 123,\n",
       "                    \"percent\": 0.37846153846153846\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 109,\n",
       "                    \"percent\": 0.3353846153846154\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 137,\n",
       "                    \"percent\": 0.42153846153846153\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 10,\n",
       "                    \"percent\": 0.03076923076923077\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 22,\n",
       "                    \"percent\": 0.06769230769230769\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 307,\n",
       "                    \"percent\": 0.9446153846153846\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 297,\n",
       "                    \"percent\": 0.9138461538461539\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 308,\n",
       "                    \"percent\": 0.9476923076923077\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 54,\n",
       "                    \"percent\": 0.16615384615384615\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 214,\n",
       "                    \"percent\": 0.6584615384615384\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 134,\n",
       "                    \"percent\": 0.4123076923076923\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 34,\n",
       "                    \"percent\": 0.10461538461538461\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 84,\n",
       "                    \"percent\": 0.25846153846153846\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 14,\n",
       "                    \"percent\": 0.043076923076923075\n",
       "                }\n",
       "            ],\n",
       "            \"stack\": \"stack1\",\n",
       "            \"barCategoryGap\": \"50%\",\n",
       "            \"label\": {\n",
       "                \"show\": true,\n",
       "                \"position\": \"right\",\n",
       "                \"margin\": 8,\n",
       "                \"formatter\": function(x){return Number(x.data.percent * 100).toFixed() + '%';}\n",
       "            },\n",
       "            \"rippleEffect\": {\n",
       "                \"show\": true,\n",
       "                \"brushType\": \"stroke\",\n",
       "                \"scale\": 2.5,\n",
       "                \"period\": 4\n",
       "            },\n",
       "            \"xaxis_opts\": {\n",
       "                \"show\": true,\n",
       "                \"scale\": false,\n",
       "                \"nameLocation\": \"end\",\n",
       "                \"nameGap\": 15,\n",
       "                \"gridIndex\": 0,\n",
       "                \"axisLabel\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": \"top\",\n",
       "                    \"rotate\": -15,\n",
       "                    \"margin\": 8\n",
       "                },\n",
       "                \"inverse\": false,\n",
       "                \"offset\": 0,\n",
       "                \"splitNumber\": 5,\n",
       "                \"minInterval\": 0,\n",
       "                \"splitLine\": {\n",
       "                    \"show\": false,\n",
       "                    \"lineStyle\": {\n",
       "                        \"show\": true,\n",
       "                        \"width\": 1,\n",
       "                        \"opacity\": 1,\n",
       "                        \"curveness\": 0,\n",
       "                        \"type\": \"solid\"\n",
       "                    }\n",
       "                }\n",
       "            }\n",
       "        },\n",
       "        {\n",
       "            \"type\": \"bar\",\n",
       "            \"name\": \"\\u7279\\u5f81\\u53d8\\u91cf\\u4e2d\\u975e0\\u7684\\u4e2a\\u6570\",\n",
       "            \"data\": [\n",
       "                {\n",
       "                    \"value\": 180,\n",
       "                    \"percent\": 0.5538461538461539\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 37,\n",
       "                    \"percent\": 0.11384615384615385\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 199,\n",
       "                    \"percent\": 0.6123076923076923\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 191,\n",
       "                    \"percent\": 0.5876923076923077\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 188,\n",
       "                    \"percent\": 0.5784615384615385\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 306,\n",
       "                    \"percent\": 0.9415384615384615\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 106,\n",
       "                    \"percent\": 0.3261538461538461\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 111,\n",
       "                    \"percent\": 0.3415384615384615\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 138,\n",
       "                    \"percent\": 0.4246153846153846\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 202,\n",
       "                    \"percent\": 0.6215384615384615\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 216,\n",
       "                    \"percent\": 0.6646153846153846\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 188,\n",
       "                    \"percent\": 0.5784615384615385\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 315,\n",
       "                    \"percent\": 0.9692307692307692\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 303,\n",
       "                    \"percent\": 0.9323076923076923\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 18,\n",
       "                    \"percent\": 0.055384615384615386\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 28,\n",
       "                    \"percent\": 0.08615384615384615\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 17,\n",
       "                    \"percent\": 0.052307692307692305\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 271,\n",
       "                    \"percent\": 0.8338461538461538\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 111,\n",
       "                    \"percent\": 0.3415384615384615\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 191,\n",
       "                    \"percent\": 0.5876923076923077\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 291,\n",
       "                    \"percent\": 0.8953846153846153\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 241,\n",
       "                    \"percent\": 0.7415384615384616\n",
       "                },\n",
       "                {\n",
       "                    \"value\": 311,\n",
       "                    \"percent\": 0.9569230769230769\n",
       "                }\n",
       "            ],\n",
       "            \"stack\": \"stack1\",\n",
       "            \"barCategoryGap\": \"50%\",\n",
       "            \"label\": {\n",
       "                \"show\": true,\n",
       "                \"position\": \"right\",\n",
       "                \"margin\": 8,\n",
       "                \"formatter\": function(x){return Number(x.data.percent * 100).toFixed() + '%';}\n",
       "            },\n",
       "            \"rippleEffect\": {\n",
       "                \"show\": true,\n",
       "                \"brushType\": \"stroke\",\n",
       "                \"scale\": 2.5,\n",
       "                \"period\": 4\n",
       "            },\n",
       "            \"xaxis_opts\": {\n",
       "                \"show\": true,\n",
       "                \"scale\": false,\n",
       "                \"nameLocation\": \"end\",\n",
       "                \"nameGap\": 15,\n",
       "                \"gridIndex\": 0,\n",
       "                \"axisLabel\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": \"top\",\n",
       "                    \"rotate\": -15,\n",
       "                    \"margin\": 8\n",
       "                },\n",
       "                \"inverse\": false,\n",
       "                \"offset\": 0,\n",
       "                \"splitNumber\": 5,\n",
       "                \"minInterval\": 0,\n",
       "                \"splitLine\": {\n",
       "                    \"show\": false,\n",
       "                    \"lineStyle\": {\n",
       "                        \"show\": true,\n",
       "                        \"width\": 1,\n",
       "                        \"opacity\": 1,\n",
       "                        \"curveness\": 0,\n",
       "                        \"type\": \"solid\"\n",
       "                    }\n",
       "                }\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"legend\": [\n",
       "        {\n",
       "            \"data\": [\n",
       "                \"\\u7279\\u5f81\\u53d8\\u91cf\\u4e2d0\\u7684\\u4e2a\\u6570\",\n",
       "                \"\\u7279\\u5f81\\u53d8\\u91cf\\u4e2d\\u975e0\\u7684\\u4e2a\\u6570\"\n",
       "            ],\n",
       "            \"selected\": {\n",
       "                \"\\u7279\\u5f81\\u53d8\\u91cf\\u4e2d0\\u7684\\u4e2a\\u6570\": true,\n",
       "                \"\\u7279\\u5f81\\u53d8\\u91cf\\u4e2d\\u975e0\\u7684\\u4e2a\\u6570\": true\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"tooltip\": {\n",
       "        \"show\": true,\n",
       "        \"trigger\": \"item\",\n",
       "        \"triggerOn\": \"mousemove|click\",\n",
       "        \"axisPointer\": {\n",
       "            \"type\": \"line\"\n",
       "        },\n",
       "        \"textStyle\": {\n",
       "            \"fontSize\": 14\n",
       "        },\n",
       "        \"borderWidth\": 0\n",
       "    },\n",
       "    \"xAxis\": [\n",
       "        {\n",
       "            \"show\": true,\n",
       "            \"scale\": false,\n",
       "            \"nameLocation\": \"end\",\n",
       "            \"nameGap\": 15,\n",
       "            \"gridIndex\": 0,\n",
       "            \"inverse\": false,\n",
       "            \"offset\": 0,\n",
       "            \"splitNumber\": 5,\n",
       "            \"minInterval\": 0,\n",
       "            \"splitLine\": {\n",
       "                \"show\": false,\n",
       "                \"lineStyle\": {\n",
       "                    \"show\": true,\n",
       "                    \"width\": 1,\n",
       "                    \"opacity\": 1,\n",
       "                    \"curveness\": 0,\n",
       "                    \"type\": \"solid\"\n",
       "                }\n",
       "            },\n",
       "            \"data\": [\n",
       "                \"S-ZORB.FC_2301.PV\",\n",
       "                \"S-ZORB.FT_1501.PV\",\n",
       "                \"S-ZORB.FT_5104.PV\",\n",
       "                \"S-ZORB.FT_9101.PV\",\n",
       "                \"S-ZORB.FT_1002.PV\",\n",
       "                \"S-ZORB.FT_1004.PV\",\n",
       "                \"S-ZORB.FC_1202.PV\",\n",
       "                \"S-ZORB.FC_3103.PV\",\n",
       "                \"S-ZORB.FT_1002.TOTAL\",\n",
       "                \"S-ZORB.FT_1501.TOTAL\",\n",
       "                \"S-ZORB.FT_5102.PV\",\n",
       "                \"S-ZORB.FT_2901.DACA\",\n",
       "                \"S-ZORB.FT_2303.DACA\",\n",
       "                \"S-ZORB.FT_2002.DACA\",\n",
       "                \"S-ZORB.FC_1104.DACA\",\n",
       "                \"S-ZORB.FT_2803.DACA\",\n",
       "                \"S-ZORB.FT_1502.DACA\",\n",
       "                \"S-ZORB.FT_3702.DACA\",\n",
       "                \"S-ZORB.TEX_3103A.DACA\",\n",
       "                \"S-ZORB.FT_5102.DACA.PV\",\n",
       "                \"S-ZORB.FT_1006.DACA.PV\",\n",
       "                \"S-ZORB.FT_5204.DACA.PV\",\n",
       "                \"S-ZORB.FT_1006.TOTALIZERA.PV\"\n",
       "            ]\n",
       "        }\n",
       "    ],\n",
       "    \"yAxis\": [\n",
       "        {\n",
       "            \"show\": true,\n",
       "            \"scale\": false,\n",
       "            \"nameLocation\": \"end\",\n",
       "            \"nameGap\": 15,\n",
       "            \"gridIndex\": 0,\n",
       "            \"inverse\": false,\n",
       "            \"offset\": 0,\n",
       "            \"splitNumber\": 5,\n",
       "            \"minInterval\": 0,\n",
       "            \"splitLine\": {\n",
       "                \"show\": false,\n",
       "                \"lineStyle\": {\n",
       "                    \"show\": true,\n",
       "                    \"width\": 1,\n",
       "                    \"opacity\": 1,\n",
       "                    \"curveness\": 0,\n",
       "                    \"type\": \"solid\"\n",
       "                }\n",
       "            }\n",
       "        }\n",
       "    ]\n",
       "};\n",
       "                chart_868c3863ca5b4651b17fa010c8512fb4.setOption(option_868c3863ca5b4651b17fa010c8512fb4);\n",
       "        });\n",
       "    </script>\n"
      ],
      "text/plain": [
       "<pyecharts.render.display.HTML at 0x21f7953c5f8>"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# c"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 143,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "([('S-ZORB.FT_2303.DACA', 10),\n",
       "  ('S-ZORB.FT_1006.TOTALIZERA.PV', 14),\n",
       "  ('S-ZORB.FT_1004.PV', 19),\n",
       "  ('S-ZORB.FT_2002.DACA', 22),\n",
       "  ('S-ZORB.FT_1006.DACA.PV', 34),\n",
       "  ('S-ZORB.FT_3702.DACA', 54),\n",
       "  ('S-ZORB.FT_5204.DACA.PV', 84),\n",
       "  ('S-ZORB.FT_5102.PV', 109),\n",
       "  ('S-ZORB.FT_1501.TOTAL', 123),\n",
       "  ('S-ZORB.FT_5104.PV', 126),\n",
       "  ('S-ZORB.FT_9101.PV', 134),\n",
       "  ('S-ZORB.FT_5102.DACA.PV', 134),\n",
       "  ('S-ZORB.FT_1002.PV', 137),\n",
       "  ('S-ZORB.FT_2901.DACA', 137),\n",
       "  ('S-ZORB.FC_2301.PV', 145),\n",
       "  ('S-ZORB.FT_1002.TOTAL', 187),\n",
       "  ('S-ZORB.FC_3103.PV', 214),\n",
       "  ('S-ZORB.TEX_3103A.DACA', 214),\n",
       "  ('S-ZORB.FC_1202.PV', 219),\n",
       "  ('S-ZORB.FT_1501.PV', 288),\n",
       "  ('S-ZORB.FT_2803.DACA', 297),\n",
       "  ('S-ZORB.FC_1104.DACA', 307),\n",
       "  ('S-ZORB.FT_1502.DACA', 308)],\n",
       " ['S-ZORB.FC_2432.DACA',\n",
       "  'S-ZORB.FC_2432.PIDA.SP',\n",
       "  'S-ZORB.FT_1003.PV',\n",
       "  'S-ZORB.FT_1503.TOTALIZERA.PV',\n",
       "  'S-ZORB.FT_1504.TOTALIZERA.PV',\n",
       "  'S-ZORB.FT_2302.DACA',\n",
       "  'S-ZORB.FT_3303.DACA',\n",
       "  'S-ZORB.FT_9301.PV',\n",
       "  'S-ZORB.FT_9402.PV'])"
      ]
     },
     "execution_count": 143,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "remove_zero_list, modify_zero_list"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 144,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(['S-ZORB.FT_2303.DACA',\n",
       "  'S-ZORB.FT_1006.TOTALIZERA.PV',\n",
       "  'S-ZORB.FT_1004.PV',\n",
       "  'S-ZORB.FT_2002.DACA',\n",
       "  'S-ZORB.FT_1006.DACA.PV',\n",
       "  'S-ZORB.FT_3702.DACA',\n",
       "  'S-ZORB.FT_5204.DACA.PV',\n",
       "  'S-ZORB.FT_5102.PV',\n",
       "  'S-ZORB.FT_1501.TOTAL',\n",
       "  'S-ZORB.FT_5104.PV',\n",
       "  'S-ZORB.FT_9101.PV',\n",
       "  'S-ZORB.FT_5102.DACA.PV',\n",
       "  'S-ZORB.FT_1002.PV',\n",
       "  'S-ZORB.FT_2901.DACA',\n",
       "  'S-ZORB.FC_2301.PV',\n",
       "  'S-ZORB.FT_1002.TOTAL',\n",
       "  'S-ZORB.FC_3103.PV',\n",
       "  'S-ZORB.TEX_3103A.DACA',\n",
       "  'S-ZORB.FC_1202.PV',\n",
       "  'S-ZORB.FT_1501.PV',\n",
       "  'S-ZORB.FT_2803.DACA',\n",
       "  'S-ZORB.FC_1104.DACA',\n",
       "  'S-ZORB.FT_1502.DACA'],\n",
       " ['S-ZORB.FC_2432.DACA',\n",
       "  'S-ZORB.FC_2432.PIDA.SP',\n",
       "  'S-ZORB.FT_1003.PV',\n",
       "  'S-ZORB.FT_1503.TOTALIZERA.PV',\n",
       "  'S-ZORB.FT_1504.TOTALIZERA.PV',\n",
       "  'S-ZORB.FT_2302.DACA',\n",
       "  'S-ZORB.FT_3303.DACA',\n",
       "  'S-ZORB.FT_9301.PV',\n",
       "  'S-ZORB.FT_9402.PV'])"
      ]
     },
     "execution_count": 144,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "remove_zero_colnames = [r[0] for r in remove_zero_list]\n",
    "remove_zero_colnames, modify_zero_list"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 145,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(23, 9)"
      ]
     },
     "execution_count": 145,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(remove_zero_colnames), len(modify_zero_list)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 146,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(325, 370)"
      ]
     },
     "execution_count": 146,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_325.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 147,
   "metadata": {},
   "outputs": [],
   "source": [
    "data_325.drop(remove_zero_colnames, axis=1, inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 148,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(325, 347)"
      ]
     },
     "execution_count": 148,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_325.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 149,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "mean= 25.327079516185595\n",
      "原始值data_325[S-ZORB.FC_2432.DACA][245] = 0.0\n",
      "修改值data_325[S-ZORB.FC_2432.DACA][245] = 25.327079516185595\n",
      "原始值data_325[S-ZORB.FC_2432.DACA][263] = 0.0\n",
      "修改值data_325[S-ZORB.FC_2432.DACA][263] = 25.327079516185595\n",
      "mean= 25.855875184600993\n",
      "原始值data_325[S-ZORB.FC_2432.PIDA.SP][245] = 0.0\n",
      "修改值data_325[S-ZORB.FC_2432.PIDA.SP][245] = 25.855875184600993\n",
      "原始值data_325[S-ZORB.FC_2432.PIDA.SP][263] = 0.0\n",
      "修改值data_325[S-ZORB.FC_2432.PIDA.SP][263] = 25.855875184600993\n",
      "mean= 51.84294231748942\n",
      "原始值data_325[S-ZORB.FT_1003.PV][72] = 0.0\n",
      "修改值data_325[S-ZORB.FT_1003.PV][72] = 51.84294231748942\n",
      "原始值data_325[S-ZORB.FT_1003.PV][73] = 0.0\n",
      "修改值data_325[S-ZORB.FT_1003.PV][73] = 51.84294231748942\n",
      "原始值data_325[S-ZORB.FT_1003.PV][74] = 0.0\n",
      "修改值data_325[S-ZORB.FT_1003.PV][74] = 51.84294231748942\n",
      "原始值data_325[S-ZORB.FT_1003.PV][75] = 0.0\n",
      "修改值data_325[S-ZORB.FT_1003.PV][75] = 51.84294231748942\n",
      "mean= 15211257.776514808\n",
      "原始值data_325[S-ZORB.FT_1503.TOTALIZERA.PV][186] = 0.0\n",
      "修改值data_325[S-ZORB.FT_1503.TOTALIZERA.PV][186] = 15211257.776514808\n",
      "原始值data_325[S-ZORB.FT_1503.TOTALIZERA.PV][187] = 0.0\n",
      "修改值data_325[S-ZORB.FT_1503.TOTALIZERA.PV][187] = 15211257.776514808\n",
      "mean= 17601419.579637036\n",
      "原始值data_325[S-ZORB.FT_1504.TOTALIZERA.PV][186] = 0.0\n",
      "修改值data_325[S-ZORB.FT_1504.TOTALIZERA.PV][186] = 17601419.579637036\n",
      "原始值data_325[S-ZORB.FT_1504.TOTALIZERA.PV][187] = 0.0\n",
      "修改值data_325[S-ZORB.FT_1504.TOTALIZERA.PV][187] = 17601419.579637036\n",
      "mean= 53.6159920829025\n",
      "原始值data_325[S-ZORB.FT_2302.DACA][17] = 0.0\n",
      "修改值data_325[S-ZORB.FT_2302.DACA][17] = 53.6159920829025\n",
      "原始值data_325[S-ZORB.FT_2302.DACA][111] = 0.0\n",
      "修改值data_325[S-ZORB.FT_2302.DACA][111] = 53.6159920829025\n",
      "原始值data_325[S-ZORB.FT_2302.DACA][117] = 0.0\n",
      "修改值data_325[S-ZORB.FT_2302.DACA][117] = 53.6159920829025\n",
      "mean= 246.37140220314112\n",
      "原始值data_325[S-ZORB.FT_3303.DACA][10] = 0.0\n",
      "修改值data_325[S-ZORB.FT_3303.DACA][10] = 246.37140220314112\n",
      "原始值data_325[S-ZORB.FT_3303.DACA][11] = 0.0\n",
      "修改值data_325[S-ZORB.FT_3303.DACA][11] = 246.37140220314112\n",
      "原始值data_325[S-ZORB.FT_3303.DACA][12] = 0.0\n",
      "修改值data_325[S-ZORB.FT_3303.DACA][12] = 246.37140220314112\n",
      "mean= 1095.9119185752932\n",
      "原始值data_325[S-ZORB.FT_9301.PV][219] = 0.0\n",
      "修改值data_325[S-ZORB.FT_9301.PV][219] = 1095.9119185752932\n",
      "原始值data_325[S-ZORB.FT_9301.PV][222] = 0.0\n",
      "修改值data_325[S-ZORB.FT_9301.PV][222] = 1095.9119185752932\n",
      "原始值data_325[S-ZORB.FT_9301.PV][224] = 0.0\n",
      "修改值data_325[S-ZORB.FT_9301.PV][224] = 1095.9119185752932\n",
      "原始值data_325[S-ZORB.FT_9301.PV][263] = 0.0\n",
      "修改值data_325[S-ZORB.FT_9301.PV][263] = 1095.9119185752932\n",
      "mean= 470.6353185019953\n",
      "原始值data_325[S-ZORB.FT_9402.PV][185] = 0.0\n",
      "修改值data_325[S-ZORB.FT_9402.PV][185] = 470.6353185019953\n"
     ]
    }
   ],
   "source": [
    "for r in modify_zero_list:\n",
    "    mean_value = data_325[r].mean()\n",
    "    print(\"mean=\", mean_value)\n",
    "    for ind in data_325[ data_325[r] == 0.0 ].index:\n",
    "        print('原始值data_325['+r+']['+str(ind)+'] = '+str(data_325[r].iloc[ind]))\n",
    "        data_325[r].iloc[ind] = mean_value\n",
    "        print('修改值data_325['+r+']['+str(ind)+'] = '+str(data_325[r].iloc[ind]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 152,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(325, 347)"
      ]
     },
     "execution_count": 152,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_325.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 155,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>样本编号</th>\n",
       "      <th>RON损失</th>\n",
       "      <th>原料性质：硫含量</th>\n",
       "      <th>原料性质：辛烷值</th>\n",
       "      <th>原料性质：饱和烃</th>\n",
       "      <th>原料性质：烯烃</th>\n",
       "      <th>原料性质：芳烃</th>\n",
       "      <th>原料性质：溴值</th>\n",
       "      <th>原料性质：密度</th>\n",
       "      <th>产品性质：硫含量</th>\n",
       "      <th>...</th>\n",
       "      <th>S-ZORB.CAL.SPEED.PV</th>\n",
       "      <th>S-ZORB.CAL.LEVEL.PV</th>\n",
       "      <th>S-ZORB.RXL_0001.AUXCALCA.PV</th>\n",
       "      <th>S-ZORB.CAL_1.CANGLIANG.PV</th>\n",
       "      <th>S-ZORB.FT_5204.TOTALIZERA.PV</th>\n",
       "      <th>S-ZORB.FT_1503.DACA.PV</th>\n",
       "      <th>S-ZORB.FT_1503.TOTALIZERA.PV</th>\n",
       "      <th>S-ZORB.FT_1504.DACA.PV</th>\n",
       "      <th>S-ZORB.FT_1504.TOTALIZERA.PV</th>\n",
       "      <th>S-ZORB.PC_1001A.PV</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>325.000000</td>\n",
       "      <td>325.000000</td>\n",
       "      <td>325.000000</td>\n",
       "      <td>325.000000</td>\n",
       "      <td>325.000000</td>\n",
       "      <td>325.000000</td>\n",
       "      <td>325.000000</td>\n",
       "      <td>325.000000</td>\n",
       "      <td>325.000000</td>\n",
       "      <td>325.000000</td>\n",
       "      <td>...</td>\n",
       "      <td>325.000000</td>\n",
       "      <td>325.000000</td>\n",
       "      <td>325.000000</td>\n",
       "      <td>325.000000</td>\n",
       "      <td>3.250000e+02</td>\n",
       "      <td>3.250000e+02</td>\n",
       "      <td>3.250000e+02</td>\n",
       "      <td>325.000000</td>\n",
       "      <td>3.250000e+02</td>\n",
       "      <td>325.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>163.000000</td>\n",
       "      <td>1.255477</td>\n",
       "      <td>229.548904</td>\n",
       "      <td>89.701538</td>\n",
       "      <td>52.676228</td>\n",
       "      <td>25.389298</td>\n",
       "      <td>21.931659</td>\n",
       "      <td>53.988808</td>\n",
       "      <td>726.755265</td>\n",
       "      <td>4.058154</td>\n",
       "      <td>...</td>\n",
       "      <td>4.721220</td>\n",
       "      <td>2091.532369</td>\n",
       "      <td>92.749177</td>\n",
       "      <td>2.256077</td>\n",
       "      <td>1.113469e+06</td>\n",
       "      <td>9.008195e+04</td>\n",
       "      <td>1.530487e+07</td>\n",
       "      <td>2105.079943</td>\n",
       "      <td>1.770974e+07</td>\n",
       "      <td>-33.277532</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>93.963645</td>\n",
       "      <td>0.225929</td>\n",
       "      <td>65.752227</td>\n",
       "      <td>0.950064</td>\n",
       "      <td>4.584314</td>\n",
       "      <td>4.954857</td>\n",
       "      <td>1.853239</td>\n",
       "      <td>8.164930</td>\n",
       "      <td>4.262181</td>\n",
       "      <td>1.551175</td>\n",
       "      <td>...</td>\n",
       "      <td>0.924967</td>\n",
       "      <td>5529.701489</td>\n",
       "      <td>0.351967</td>\n",
       "      <td>0.275891</td>\n",
       "      <td>1.169934e+06</td>\n",
       "      <td>5.754798e+05</td>\n",
       "      <td>1.053480e+07</td>\n",
       "      <td>1798.246718</td>\n",
       "      <td>1.164227e+07</td>\n",
       "      <td>42.008897</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.200000</td>\n",
       "      <td>57.000000</td>\n",
       "      <td>85.300000</td>\n",
       "      <td>43.240000</td>\n",
       "      <td>14.600000</td>\n",
       "      <td>16.000000</td>\n",
       "      <td>6.390000</td>\n",
       "      <td>715.100000</td>\n",
       "      <td>3.200000</td>\n",
       "      <td>...</td>\n",
       "      <td>2.971716</td>\n",
       "      <td>-4269.455900</td>\n",
       "      <td>92.082209</td>\n",
       "      <td>1.271312</td>\n",
       "      <td>3.050138e+04</td>\n",
       "      <td>6.156109e+01</td>\n",
       "      <td>1.883804e+04</td>\n",
       "      <td>-13900.460500</td>\n",
       "      <td>4.044086e+04</td>\n",
       "      <td>-120.560472</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>82.000000</td>\n",
       "      <td>1.120000</td>\n",
       "      <td>185.000000</td>\n",
       "      <td>89.200000</td>\n",
       "      <td>49.610000</td>\n",
       "      <td>21.800000</td>\n",
       "      <td>20.690000</td>\n",
       "      <td>48.650000</td>\n",
       "      <td>724.200000</td>\n",
       "      <td>3.200000</td>\n",
       "      <td>...</td>\n",
       "      <td>4.049148</td>\n",
       "      <td>78.928243</td>\n",
       "      <td>92.601248</td>\n",
       "      <td>2.080581</td>\n",
       "      <td>3.518756e+04</td>\n",
       "      <td>1.870588e+03</td>\n",
       "      <td>6.747362e+06</td>\n",
       "      <td>2211.859850</td>\n",
       "      <td>8.323390e+06</td>\n",
       "      <td>-72.834572</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>163.000000</td>\n",
       "      <td>1.240000</td>\n",
       "      <td>240.285714</td>\n",
       "      <td>89.800000</td>\n",
       "      <td>53.250000</td>\n",
       "      <td>24.800000</td>\n",
       "      <td>21.890000</td>\n",
       "      <td>53.980000</td>\n",
       "      <td>726.300000</td>\n",
       "      <td>3.200000</td>\n",
       "      <td>...</td>\n",
       "      <td>4.458773</td>\n",
       "      <td>80.502553</td>\n",
       "      <td>92.734504</td>\n",
       "      <td>2.247015</td>\n",
       "      <td>3.631831e+05</td>\n",
       "      <td>2.177558e+03</td>\n",
       "      <td>1.396984e+07</td>\n",
       "      <td>2538.538450</td>\n",
       "      <td>1.666282e+07</td>\n",
       "      <td>0.293821</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>244.000000</td>\n",
       "      <td>1.380000</td>\n",
       "      <td>271.428571</td>\n",
       "      <td>90.300000</td>\n",
       "      <td>56.100000</td>\n",
       "      <td>29.000000</td>\n",
       "      <td>23.300000</td>\n",
       "      <td>60.190000</td>\n",
       "      <td>729.500000</td>\n",
       "      <td>4.400000</td>\n",
       "      <td>...</td>\n",
       "      <td>5.618136</td>\n",
       "      <td>84.602098</td>\n",
       "      <td>92.855666</td>\n",
       "      <td>2.338828</td>\n",
       "      <td>2.545050e+06</td>\n",
       "      <td>2.569868e+03</td>\n",
       "      <td>2.254427e+07</td>\n",
       "      <td>2702.628700</td>\n",
       "      <td>2.678945e+07</td>\n",
       "      <td>0.350086</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>325.000000</td>\n",
       "      <td>1.820000</td>\n",
       "      <td>392.000000</td>\n",
       "      <td>91.700000</td>\n",
       "      <td>63.400000</td>\n",
       "      <td>34.670000</td>\n",
       "      <td>26.200000</td>\n",
       "      <td>70.500000</td>\n",
       "      <td>738.700000</td>\n",
       "      <td>11.800000</td>\n",
       "      <td>...</td>\n",
       "      <td>6.690195</td>\n",
       "      <td>19161.951000</td>\n",
       "      <td>97.300958</td>\n",
       "      <td>3.558827</td>\n",
       "      <td>2.562289e+06</td>\n",
       "      <td>5.419704e+06</td>\n",
       "      <td>3.906312e+07</td>\n",
       "      <td>3104.564825</td>\n",
       "      <td>3.960876e+07</td>\n",
       "      <td>0.358053</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>8 rows × 346 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "             样本编号       RON损失    原料性质：硫含量    原料性质：辛烷值    原料性质：饱和烃     原料性质：烯烃  \\\n",
       "count  325.000000  325.000000  325.000000  325.000000  325.000000  325.000000   \n",
       "mean   163.000000    1.255477  229.548904   89.701538   52.676228   25.389298   \n",
       "std     93.963645    0.225929   65.752227    0.950064    4.584314    4.954857   \n",
       "min      1.000000    0.200000   57.000000   85.300000   43.240000   14.600000   \n",
       "25%     82.000000    1.120000  185.000000   89.200000   49.610000   21.800000   \n",
       "50%    163.000000    1.240000  240.285714   89.800000   53.250000   24.800000   \n",
       "75%    244.000000    1.380000  271.428571   90.300000   56.100000   29.000000   \n",
       "max    325.000000    1.820000  392.000000   91.700000   63.400000   34.670000   \n",
       "\n",
       "          原料性质：芳烃     原料性质：溴值     原料性质：密度    产品性质：硫含量  ...  \\\n",
       "count  325.000000  325.000000  325.000000  325.000000  ...   \n",
       "mean    21.931659   53.988808  726.755265    4.058154  ...   \n",
       "std      1.853239    8.164930    4.262181    1.551175  ...   \n",
       "min     16.000000    6.390000  715.100000    3.200000  ...   \n",
       "25%     20.690000   48.650000  724.200000    3.200000  ...   \n",
       "50%     21.890000   53.980000  726.300000    3.200000  ...   \n",
       "75%     23.300000   60.190000  729.500000    4.400000  ...   \n",
       "max     26.200000   70.500000  738.700000   11.800000  ...   \n",
       "\n",
       "       S-ZORB.CAL.SPEED.PV  S-ZORB.CAL.LEVEL.PV  S-ZORB.RXL_0001.AUXCALCA.PV  \\\n",
       "count           325.000000           325.000000                   325.000000   \n",
       "mean              4.721220          2091.532369                    92.749177   \n",
       "std               0.924967          5529.701489                     0.351967   \n",
       "min               2.971716         -4269.455900                    92.082209   \n",
       "25%               4.049148            78.928243                    92.601248   \n",
       "50%               4.458773            80.502553                    92.734504   \n",
       "75%               5.618136            84.602098                    92.855666   \n",
       "max               6.690195         19161.951000                    97.300958   \n",
       "\n",
       "       S-ZORB.CAL_1.CANGLIANG.PV  S-ZORB.FT_5204.TOTALIZERA.PV  \\\n",
       "count                 325.000000                  3.250000e+02   \n",
       "mean                    2.256077                  1.113469e+06   \n",
       "std                     0.275891                  1.169934e+06   \n",
       "min                     1.271312                  3.050138e+04   \n",
       "25%                     2.080581                  3.518756e+04   \n",
       "50%                     2.247015                  3.631831e+05   \n",
       "75%                     2.338828                  2.545050e+06   \n",
       "max                     3.558827                  2.562289e+06   \n",
       "\n",
       "       S-ZORB.FT_1503.DACA.PV  S-ZORB.FT_1503.TOTALIZERA.PV  \\\n",
       "count            3.250000e+02                  3.250000e+02   \n",
       "mean             9.008195e+04                  1.530487e+07   \n",
       "std              5.754798e+05                  1.053480e+07   \n",
       "min              6.156109e+01                  1.883804e+04   \n",
       "25%              1.870588e+03                  6.747362e+06   \n",
       "50%              2.177558e+03                  1.396984e+07   \n",
       "75%              2.569868e+03                  2.254427e+07   \n",
       "max              5.419704e+06                  3.906312e+07   \n",
       "\n",
       "       S-ZORB.FT_1504.DACA.PV  S-ZORB.FT_1504.TOTALIZERA.PV  \\\n",
       "count              325.000000                  3.250000e+02   \n",
       "mean              2105.079943                  1.770974e+07   \n",
       "std               1798.246718                  1.164227e+07   \n",
       "min             -13900.460500                  4.044086e+04   \n",
       "25%               2211.859850                  8.323390e+06   \n",
       "50%               2538.538450                  1.666282e+07   \n",
       "75%               2702.628700                  2.678945e+07   \n",
       "max               3104.564825                  3.960876e+07   \n",
       "\n",
       "       S-ZORB.PC_1001A.PV  \n",
       "count          325.000000  \n",
       "mean           -33.277532  \n",
       "std             42.008897  \n",
       "min           -120.560472  \n",
       "25%            -72.834572  \n",
       "50%              0.293821  \n",
       "75%              0.350086  \n",
       "max              0.358053  \n",
       "\n",
       "[8 rows x 346 columns]"
      ]
     },
     "execution_count": 155,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_325.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 156,
   "metadata": {},
   "outputs": [],
   "source": [
    "data_325.to_excel(\"2-重新整合325个样本数据(未完、已做删0、填均值).xlsx\", index=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
